package com.manner.groupon.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 团购订单表
 *
 * @TableName tb_groupon_order
 */
@TableName(value = "tb_groupon_order")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GrouponOrder extends Object implements Serializable {
    /**
     * 自增主键，数据唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 团购券
     */
    @TableField(value = "groupon_order_id")
    private String grouponOrderId;

    /**
     * 第三方支付号
     */
    @TableField(value = "pay_id")
    private String payId;

    /**
     * 商家编号
     */
    @TableField(value = "store_no")
    private String storeNo;

    /**
     * 外键团购券订单编号
     */
    @TableField(value = "gc_id")
    private Long gcId;

    /**
     * 用户编号
     */
    @TableField(value = "user_id")
    private Long userId;

    @TableField("deduction_coupon_id")
    private Long deductionCouponId;

    /**
     * 支付方式
     */
    @TableField(value = "payment_method")
    private String paymentMethod;

    /**
     * 一次下单的优惠券数量
     */
    @TableField(value = "ticket_number")
    private Integer ticketNumber;

    /**
     * 支付总金额
     */
    @TableField(value = "total_amount")
    private BigDecimal totalAmount;

    @TableField(value = "remark")
    private String remark;

    /**
     * 团购订单状态（0:待支付 1:已取消  2:已支付  3:已退款 4:已使用 5:已过期）
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private String createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private String updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}